#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2014-08-22 01:14:23
# @Author  : shitao.tommy (hero007asd@gmail.com)
# @Link    : http://example.org
# @Version : $Id$

from web.handler.api import BaseApiHandler
from lib.tornado_routes import route
from tornado import gen
from tornado.web import asynchronous
from lib import libimage,libpage
from web.models.api.dorm.employee import Employee

head_title = '保洁职工'

@route(r'api/dorm/employee/new/?',name='employee_new')
class NewEmployeeHandler(BaseApiHandler):
    '''
    @title 新增保洁职工
    @method post
    @param empName 姓名 12位最长
    @param age 年龄 
    @param dormId 宿管楼id 
    @param img 图片路径 
    @param entryTime 入职时间 
    @retfield isOk 增加成功与否1成功0失败 
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入职工名)
    @description 新增保洁职工
    '''
    @asynchronous
    @gen.coroutine
    def post(self):
        emp_name = self.get_argument('empName', default='')
        age = self.get_argument('age', default='')
        dorm_id = self.get_argument('dormId', default='')
        img = self.get_argument('img', default='')
        entry_time = self.get_argument('entryTime', default=0)

        if emp_name == '':
            self.write_fail(None ,400, '请传入职工名')
        else:
            ret = yield Employee().new(emp_name, age, dorm_id, img, entry_time)
            if ret == '-1':
                self.write_fail(None ,500, '系统错误')
            elif ret == '0':
                self.write_success({'isOk':0})
            elif ret == '1':
                self.write_success({'isOk':1})
        self.finish()

@route(r'api/dorm/employee/list/?',name='employee_list')
class ListEmployeeHandler(BaseApiHandler):
    '''
    @title 保洁职工列表
    @param page 第几页 默认：1
    @param offset 每页显示多少数据 默认：20
    @method get
    @retfield id
    @retfield name 姓名
    @retfield img 头像
    @retfield dormId 宿舍id
    @retfield age 年龄
    @retfield entryName 入职时间
    @retfield dormName 宿舍名
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入必要参数)
    @description 保洁职工列表
    '''
    @asynchronous
    @gen.coroutine
    def get(self):
        page = self.get_argument('page', default=1)
        offset = self.get_argument('offset', default=20)
        ret = yield Employee().list(libpage.start(page, offset), offset)
        if ret == '-1':
            self.write_fail(None ,500, '系统错误')
        else:
            self.write_success(ret)
        self.finish()


@route(r'api/dorm/employee/mylist/?',name='employee_mylist')
class ListMyEmployeeHandler(BaseApiHandler):
    '''
    @title 手机端保洁职工列表
    @param page 第几页 默认：1
    @param offset 每页显示多少数据 默认：20
    @param studentId 学生id 默认：0
    @method get
    @retfield id
    @retfield name 姓名
    @retfield img 头像
    @retfield dormId 宿舍id
    @retfield age 年龄
    @retfield entryName 入职时间
    @retfield dormName 宿舍名
    @retfield isLike 是否赞 1表示赞0表示未赞过
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入必要参数)
    @description 手机端保洁职工列表
    '''
    @asynchronous
    @gen.coroutine
    def get(self):
        page = self.get_argument('page', default=1)
        offset = self.get_argument('offset', default=20)
        student_id = self.get_argument('studentId', default=0)
        ret = yield Employee().mylist(student_id, libpage.start(page, offset), offset)
        if ret == '-1':
            self.write_fail(None ,500, '系统错误')
        else:
            self.write_success(ret)
        self.finish()

@route(r'api/dorm/employee/upd/?',name='employee_upd')
class UpdEmployeeHandler(BaseApiHandler):
    '''
    @title 更新保洁职工
    @method post
    @param empId 保洁id
    @param empName 姓名 12位最长
    @param age 年龄 
    @param dormId 宿管楼id 
    @param img 图片路径 
    @param entryTime 入职时间 
    @retfield isOk 更新成功与否1成功0失败 
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请选择职工)
    @description 更新保洁职工
    '''
    @asynchronous
    @gen.coroutine
    def post(self):
        emp_id = self.get_argument('empId', default='')
        emp_name = self.get_argument('empName', default='')
        age = self.get_argument('age', default='')
        dorm_id = self.get_argument('dormId', default='')
        img = self.get_argument('img', default='')
        entry_time = self.get_argument('entryTime', default=0)

        if emp_id == '':
            self.write_fail(None ,400, '请选择职工')
        else:
            ret = yield Employee().upd(emp_id, emp_name, age, dorm_id, img, entry_time)
            if ret == '-1':
                self.write_fail(None ,500, '系统错误')
            elif ret == '0':
                self.write_success({'isOk':0})
            elif ret == '1':
                self.write_success({'isOk':1})

        self.finish()

@route(r'api/dorm/employee/del/?',name='employee_del')
class DelEmployeeHandler(BaseApiHandler):
    '''
    @title 删除员工
    @method post
    @param empId 保洁id
    @retfield isOk 删除成功与否1成功0失败 
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入必要参数)
    @description 删除员工
    '''
    @asynchronous
    @gen.coroutine
    def post(self):
        emp_id = self.get_argument('empId', default='')

        if emp_id == '':
            self.write_fail(None ,400, '请选择职工')
        else:
            ret = yield Employee().delete(emp_id)
            if ret == '-1':
                self.write_fail(None ,500, '系统错误')
            elif ret == '0':
                self.write_success({'isOk':0})
            elif ret == '1':
                self.write_success({'isOk':1})
        self.finish()
